
package com.hlkj.pay.gateway.ad;
/*
 * Hlpay-Plus aggregate payment system.
 * Copyright (c) 2024-2025 Hlpay Team Copyright has the right of final interpretation.
 */

import com.hlkj.pay.dto.ad.result.HlPayDataResultDto;
import com.hlkj.pay.dto.ad.result.HlRefundDataResultDto;
import com.hlkj.pay.dto.ad.gateway.Tuia;
import com.hlkj.pay.dto.ad.query.HlPayOrderQueryResultDto;
import com.hlkj.pay.dto.ad.query.HlRefundOrderQueryResultDto;
import com.hlkj.pay.infrastructure.model.ad.AdInfoConfigDO;
import com.hlkj.pay.infrastructure.model.ad.AdInfoDO;
import com.hlkj.pay.infrastructure.model.ad.AdPayOrderDO;
import com.hlkj.pay.infrastructure.model.ad.AdRefundOrderDO;

/**
 * @author HlpayTeam
 * @date 2024/11/04 8:50
 */
public interface IAdOrderGateway {
    
    /**
     *
     * @param payOrderDO
     * @param adInfoDO
     * @param adInfoConfigDO
     * @return
     * @throws Exception
     */
    HlPayDataResultDto submitPayOrder(AdPayOrderDO payOrderDO, AdInfoDO adInfoDO, AdInfoConfigDO adInfoConfigDO) throws Exception;
    /**
     *
     * @param mchOrderNo
     * @param adInfoConfigDO
     * @return
     */
    HlPayOrderQueryResultDto queryOrder(AdPayOrderDO payOrderDO, AdInfoConfigDO adInfoConfigDO) throws Exception;
    /**
     *
     * @param adRefundOrderDO
     * @param adInfoConfigDO
     * @return
     * @throws Exception
     */
    HlRefundDataResultDto submitRefundOrder(AdRefundOrderDO adRefundOrderDO, AdInfoConfigDO adInfoConfigDO) throws Exception;
    /**
     *
     * @param refundOrderNo
     * @param adInfoConfigDO
     * @return
     * @throws Exception
     */
    HlRefundOrderQueryResultDto queryRefundOrder(AdRefundOrderDO adRefundOrderDO, AdInfoConfigDO adInfoConfigDO) throws Exception;

    /**
     * 
     * @param params
     * @return
     */
    Tuia syncCallBack(AdInfoConfigDO adInfoConfigDO, Long adMediaId, String aOId)throws Exception;
}
